*     influence function for potential at CZ of areasink
*     with corners CZ1 CZ2 CZ3 CZ4 in counterclockwise order
      DOUBLE PRECISION FUNCTION RFSAP0(CZ, CZ1, CZ2, CZ3, CZ4)
      IMPLICIT NONE
      COMPLEX*16       CZ, CZ1, CZ2, CZ3, CZ4

      COMPLEX*16       CZT, CZTS, CZT3, CZT4, CMIX, CZTM3, CZTM3S,
     &                 CZTM0, CAL1, CAL2, CAL3,
     &                 CF1, CF2, CF3, CF4
      DOUBLE PRECISION RKSI, RKSIS, RKSI3, RKSI4, RET3, RET4, RA1, RA2,
     &                 RA, RL, RPOT

      DOUBLE PRECISION RPI, RTOLRL, RFAR, RO2PI
      COMPLEX*16       CPI, C2PI, CI
      PARAMETER (RPI=3.1415926535)
      PARAMETER (RTOLRL=.0001)
      PARAMETER (RFAR=2.)
      PARAMETER (CPI=(.0,3.141592654),C2PI=2*CPI,CI=(.0,1.))


      CZT=(CZ-CZ1)/(CZ2-CZ1)
      CZTS=CZT*CZT
      RKSI=REAL(CZT)
      RKSIS=RKSI*RKSI
      CZT3=(CZ3-CZ1)/(CZ2-CZ1)
      CZT4=(CZ4-CZ1)/(CZ2-CZ1)
      RKSI3=REAL(CZT3)
      RKSI4=REAL(CZT4)
      RET3=AIMAG(CZT3)
      RET4=AIMAG(CZT4)
      RA1=(1.-RKSI3)*RET3
      RA2=(RKSI3-RKSI4)*(RET3+RET4)+RKSI4*RET4
      RA=RA1+RA2
      CMIX=2.0*CZT*RKSI3-RKSIS-RKSI3*RKSI3
      CZTM3=CZT-CZT3
      CZTM3S=CZTM3*CZTM3
      RL=ABS(CZ2-CZ1)
      IF ( ABS(CZ-.25*(CZ1+CZ2+CZ3+CZ4))/RL .GE.RFAR) THEN
*        far away
         CZTM0=CZT-.25*(1.+CZT3+CZT4)
         RPOT=RA*LOG(ABS(CZTM0))
      ELSE IF(ABS(CZT).LE.RTOLRL) THEN
*        close to corner 1 (which has zeta=0.,0.)
         CAL1=(RKSI3-1.)/(CZT3-1.)
         CAL2=(RKSI3-RKSI4)/(CZT3-CZT4)
         CF2=-CI*(CAL1*CZTM3S+CMIX)*LOG((CZT-1.)/CZTM3)
         CF3=-CI*(CAL2*CZTM3S+CMIX)*LOG(CZTM3/(CZT-CZT4))
         RPOT=REAL(CF2+CF3+
     &      RA2*(LOG((CZT-CZT4)/(CZT-1.))+C2PI)+RA*(CPI-1.5))

      ELSE IF(ABS(CZT-1.).LE.RTOLRL) THEN
*        close to corner 2 (which has zeta=1.,0.)
         CAL2=(RKSI3-RKSI4)/(CZT3-CZT4)
         CAL3=RKSI4/CZT4
         CF3=-CI*(CAL2*CZTM3S+CMIX)*LOG(CZTM3/(CZT-CZT4))
         CF4=(CI*(CAL3*CZTS-RKSIS)-RA2)*LOG(CZT/(CZT-CZT4))
         RPOT=REAL(CF3+CF4+
     &      RA1*(LOG(CZTM3/CZT)+C2PI)-RA*1.5)

      ELSE IF(ABS(CZT-CZT3).LE.RTOLRL) THEN
*        close to corner 3
         CAL3=RKSI4/CZT4
         CF1=(-CI*(CZTS-RKSIS)-RA1)*LOG(CZT/(CZT-1.))
         CF4=(CI*(CAL3*CZTS-RKSIS)-RA2)*LOG(CZT/(CZT-CZT4))
         RPOT=REAL(CF1+CF4+
     &      2.*AIMAG(CZT3)*RKSI3*(LOG((CZT-1.)/(CZT-CZT4))+C2PI)
     &      +RA*(LOG(CZT3)-1.5))

      ELSE IF(ABS(CZT-CZT4).LE.RTOLRL) THEN
*        close to corner 4
         CAL1=(RKSI3-1.)/(CZT3-1.)
         CF1=(-CI*(CZTS-RKSIS)-RA1)*LOG(CZT/(CZT-1.))
         CF2=-CI*(CAL1*CZTM3S+CMIX)*LOG((CZT-1.)/CZTM3)
         RPOT=REAL(CF1+CF2-(RA2+REAL(CZT4)*AIMAG(CZT4))*
     &      (LOG(CZT/CZTM3)+C2PI)+RA*(LOG(CZT4)-1.5))

      ELSE
*        regular (i.e. not close to a corner and not far away)
         CAL1=(RKSI3-1.)/(CZT3-1.)
         CAL2=(RKSI3-RKSI4)/(CZT3-CZT4)
         CAL3=RKSI4/CZT4
         CF1=(-CI*(CZTS-RKSIS)-RA1)*LOG(CZT/(CZT-1.))
         CF2=-CI*(CAL1*CZTM3S+CMIX)*LOG((CZT-1.)/CZTM3)
         CF3=-CI*(CAL2*CZTM3S+CMIX)*LOG(CZTM3/(CZT-CZT4))
         CF4=(CI*(CAL3*CZTS-RKSIS)-RA2)*LOG(CZT/(CZT-CZT4))
         RPOT=REAL(CF1+CF2+CF3+CF4+RA*(LOG(CZT)-1.5))
      END IF

      RFSAP0=.25/RPI*RL*RL *RPOT

      RETURN
      END
